DataSource for Entity Framework for WinForms
Index<T,TKey> クラス
メンバ 

C1.LiveLinq.4.5.2 アセンブリ > C1.LiveLinq.Indexing 名前空間 : Index<T,TKey> クラス
インデックスを作成するコレクションの要素の型。
インデックスキーの型。
式(通常フィールド)によってコレクションのインデックスを作成し、 式の特定の値(または値の範囲)にすばやくアクセスできるようにします。
オブジェクト モデル
Index<T,TKey> クラス
シンタックス
型パラメータ
T
インデックスを作成するコレクションの要素の型。
TKey
インデックスキーの型。
解説

インデックスは、コードで 明示的に IndexCollection.Add を呼び出して作成してコレクションに追加するか、 Indexed ヒントを使用することによって LINQ クエリー内で適用されます。

LINQ クエリーでは、 Indexed ヒントを使用してインデックスを指定すると、インデックスによってクエリーのパフォーマンスが最適化されます。LiveLinq は、インデックスを使用してクエリーの速度を向上できるかどうかを自動的に判断するので、原則としてヒントは不要ですが、 ヒントを使用すると、 確実に最適化できます。

また、インデックスは、LINQ 構文を使用しなくても、 Index<T,TKey> クラスによって実装される C1.LiveLinq.Indexing.Search.IIndexScanner<T,TKey> インタフェースのメソッドを使用することで、コード内でプログラムから使用できます。 たとえば、Index<T,TKey> オブジェクトで直接 Find などのメソッドを呼び出すことができます。

インデックスが作成されるたびに トレードオフが生じることに注意する必要があります。検索速度は大幅に速くなりますが、メモリを消費し、 インデックス付きのコレクション(または項目、その要素のいずれか)が変更されるたびにオーバーヘッドが追加されます(通常はわずかです)。これは、通常、 インデックスが維持されるのがクエリーで必要な間だけであるためです。 インデックスを削除するには、IndexCollection.Remove を使用します。

インデックスはサブインデックスを持つことができます(Subindex<T,TKey> を参照)。 サブインデックスはオプションであり、すべてのインデックスタスクで必要なわけではありませんが、コレクションのインデックスがマルチレベル(マルチフィールド)キーで作成される場合は、最適化をさらに促進し、メモリ要件を最小限に抑えるために役立ちます。 サブインデックスがある場合、インデックスはサブインデックスのツリーのルートレベルです。

継承階層

System.Object
   C1.LiveLinq.Indexing.IndexDefinition<T>
      C1.LiveLinq.Indexing.Index<T>
         C1.LiveLinq.Indexing.Index<T,TKey>

参照

Index<T,TKey> メンバ
C1.LiveLinq.Indexing 名前空間